Skip to main content
Nymble Commerce’s integration system lets you connect payment processors, accounting software, and other third-party services through a unified API. Credentials are stored encrypted and secrets are never returned in API responses. Each integration can be tested independently before you enable it in production.

Available integrations

TypeProviderNotes
PaymentAuthorize.NetCredit card processing via Authorize.Net’s API
PaymentWorldPay (Vantiv)Credit card processing with hosted payment pages
AccountingQuickBooks OnlineTwo-way sync of orders and invoices via OAuth
Additional providers can be added through the template system — contact Nymble Commerce support to request a new provider template.

Integration templates

Before creating an integration, fetch the available templates to discover which fields each provider requires:
GET https://api.achievemomentum.com/api/integration-templates
Authorization: Bearer {token}
Response
{
  "templates": [
    {
      "type": "Payment",
      "provider": "AuthorizeNet",
      "displayName": "Authorize.Net",
      "description": "Accept credit and debit card payments via Authorize.Net.",
      "requiresOAuth": false,
      "documentationUrl": "https://developer.authorize.net/",
      "supportedFeatures": ["Payments", "Refunds", "SavedPaymentMethods"],
      "configurationFields": [
        {
          "key": "IsSandbox",
          "displayName": "Sandbox Mode",
          "description": "Use the Authorize.Net sandbox environment for testing.",
          "type": "Boolean",
          "required": false,
          "defaultValue": "false"
        }
      ],
      "secretFields": [
        {
          "key": "ApiLoginId",
          "displayName": "API Login ID",
          "description": "Your Authorize.Net API Login ID.",
          "required": true,
          "isSensitive": true
        },
        {
          "key": "TransactionKey",
          "displayName": "Transaction Key",
          "description": "Your Authorize.Net Transaction Key.",
          "required": true,
          "isSensitive": true
        }
      ]
    }
  ]
}
Each template tells you exactly which configurationFields (non-sensitive settings) and secretFields (sensitive credentials) you need to supply when creating the integration.

Creating an integration

Send a POST request to create an integration for your organization. Supply non-sensitive settings in configuration and sensitive credentials in secrets.
POST https://api.achievemomentum.com/api/organizations/{organizationId}/integrations
Authorization: Bearer {token}
Content-Type: application/json

Authorize.Net example

{
  "integrationType": "Payment",
  "provider": "AuthorizeNet",
  "displayName": "Authorize.Net (Production)",
  "isEnabled": false,
  "configuration": {
    "IsSandbox": "false"
  },
  "secrets": {
    "ApiLoginId": "YOUR_API_LOGIN_ID",
    "TransactionKey": "YOUR_TRANSACTION_KEY"
  }
}
Response
{
  "integrationId": "int_3c7f9a2e",
  "organizationId": "org_4e9b7f22",
  "integrationType": "Payment",
  "provider": "AuthorizeNet",
  "displayName": "Authorize.Net (Production)",
  "isEnabled": false,
  "createdAt": "2024-06-01T10:00:00Z"
}
Note that secrets are never included in the response — they are stored encrypted and only referenced internally. Key request fields:
FieldTypeDescription
integrationTypestring"Payment", "Accounting", "Shipping", etc.
providerstring"AuthorizeNet", "QuickBooks", "WorldPay", etc.
displayNamestringA human-readable label for this integration (shown in your dashboard)
isEnabledbooleanWhether the integration is active; set to false until tested
configurationobjectNon-sensitive settings (e.g., IsSandbox, MarketCode)
secretsobjectSensitive credentials — stored encrypted, never returned in GET responses

Testing an integration

Always test an integration before enabling it. The test endpoint verifies that Nymble Commerce can successfully communicate with the provider using your credentials.
POST https://api.achievemomentum.com/api/organizations/{organizationId}/integrations/{integrationId}/test
Authorization: Bearer {token}
Response (success)
{
  "success": true,
  "testStatus": "Success",
  "testedAt": "2024-06-01T10:05:00Z",
  "details": "Connected to Authorize.Net sandbox. Credentials valid."
}
Response (failure)
{
  "success": false,
  "testStatus": "Failed",
  "testedAt": "2024-06-01T10:05:00Z",
  "details": "Authentication failed. Check your ApiLoginId and TransactionKey."
}
Always test integrations in sandbox mode first — set IsSandbox: "true" in configuration during testing, then create a separate production integration (or update secrets via rotate-secrets) with live credentials once you’re satisfied.

Managing integrations

List integrations

GET https://api.achievemomentum.com/api/organizations/{organizationId}/integrations
Authorization: Bearer {token}

Get a single integration

GET https://api.achievemomentum.com/api/organizations/{organizationId}/integrations/{integrationId}
Authorization: Bearer {token}
The response includes id, integrationType, provider, displayName, isEnabled, configuration, testStatus, lastTestedAt, createdAt, and updatedAt. Secret values are never returned.

Enable or update an integration

PUT https://api.achievemomentum.com/api/organizations/{organizationId}/integrations/{integrationId}
Authorization: Bearer {token}
Content-Type: application/json

{
  "isEnabled": true,
  "displayName": "Authorize.Net (Production)",
  "configuration": {
    "IsSandbox": "false"
  }
}

Delete an integration

DELETE https://api.achievemomentum.com/api/organizations/{organizationId}/integrations/{integrationId}
Authorization: Bearer {token}
Deleting an integration permanently removes its encrypted credentials from Nymble Commerce’s secret store. This action cannot be undone. If the integration is currently active and processing payments or syncing data, disable it first and confirm no in-flight operations are pending before deleting.

QuickBooks Online

QuickBooks Online uses OAuth 2.0, so the setup flow has an additional authorization step.
1

Create the QuickBooks integration

POST https://api.achievemomentum.com/api/organizations/{organizationId}/integrations
Authorization: Bearer {token}
Content-Type: application/json

{
  "integrationType": "Accounting",
  "provider": "QuickBooks",
  "displayName": "QuickBooks Online",
  "isEnabled": false,
  "configuration": {},
  "secrets": {}
}
2

Authorize via OAuth

After creating the integration, Nymble Commerce returns an OAuth authorization URL. Redirect your admin user to that URL to connect their QuickBooks Online company account. QuickBooks prompts them to sign in and grant access.
3

Nymble Commerce stores the tokens

After the user approves access, QuickBooks redirects back to Nymble Commerce’s callback URL. Nymble Commerce exchanges the authorization code for access and refresh tokens and stores them encrypted — you don’t handle tokens directly.
4

Enable the integration

Test the integration, then set isEnabled: true:
PUT https://api.achievemomentum.com/api/organizations/{organizationId}/integrations/{integrationId}
Authorization: Bearer {token}
Content-Type: application/json

{
  "isEnabled": true
}
Nymble Commerce now syncs confirmed orders and paid invoices to QuickBooks Online automatically.

Rotating secrets

If you need to update credentials without deleting and re-creating the integration (for example, when rotating API keys), use the rotate-secrets endpoint:
POST https://api.achievemomentum.com/api/organizations/{organizationId}/integrations/{integrationId}/rotate-secrets
Authorization: Bearer {token}
Content-Type: application/json

{
  "newSecrets": {
    "ApiLoginId": "NEW_API_LOGIN_ID",
    "TransactionKey": "NEW_TRANSACTION_KEY"
  }
}
The new secrets replace the old ones immediately. Run a test after rotating to confirm the new credentials are valid before re-enabling the integration in production.