Tango · Arazzo Workflow

Tango Onboard Customer and Account

Version 1.0.0

Create a customer, provision a funding account under it, and confirm the account balance.

1 workflow 1 source API 1 provider
View Spec View on GitHub Catalog ManagementDigital RewardsGift CardsIncentivesLoyaltyRewards As A ServiceArazzoWorkflows

Provider

tango

Workflows

onboard-customer-account
Create a customer, create a funding account under it, then confirm the account.
Provisions a brand-new customer and a sub-account in a single pass, then fetches the account to verify creation and report its starting balance.
3 steps inputs: accountDisplayName, accountIdentifier, currencyCode, customerDisplayName, customerIdentifier outputs: accountIdentifier, currentBalance, customerIdentifier
1
createCustomer
createCustomer
Create the customer record that will own the funding account.
2
createAccount
createAccount
Provision a sub-account under the newly created customer to hold the reward funding balance.
3
confirmAccount
getAccount
Read the account back to confirm it exists and capture its starting balance.

Source API Descriptions

Arazzo Workflow Specification

tango-onboard-customer-account-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Tango Onboard Customer and Account
  summary: Create a customer, provision a funding account under it, and confirm the account balance.
  description: >-
    The standard Tango RaaS onboarding pattern. The workflow creates a new
    customer in the platform, provisions a sub-account under that customer to
    hold a reward funding balance, and then reads the account back to confirm it
    was created and to capture its starting balance. Every step spells out its
    request inline so the flow can be read and executed without opening the
    underlying OpenAPI description. Authentication uses the platform's HTTP Basic
    credentials declared by the basicAuth security scheme; those credentials are
    applied at the transport layer and are not request parameters.
  version: 1.0.0
sourceDescriptions:
- name: tangoRaasApi
  url: ../openapi/tango-raas-api-openapi.yml
  type: openapi
workflows:
- workflowId: onboard-customer-account
  summary: Create a customer, create a funding account under it, then confirm the account.
  description: >-
    Provisions a brand-new customer and a sub-account in a single pass, then
    fetches the account to verify creation and report its starting balance.
  inputs:
    type: object
    required:
    - customerIdentifier
    - customerDisplayName
    - accountIdentifier
    - accountDisplayName
    properties:
      customerIdentifier:
        type: string
        description: Unique identifier to assign to the new customer.
      customerDisplayName:
        type: string
        description: Display name for the new customer.
      accountIdentifier:
        type: string
        description: Unique identifier to assign to the new account.
      accountDisplayName:
        type: string
        description: Display name for the new account.
      currencyCode:
        type: string
        description: ISO 4217 currency code for the account (defaults to USD).
        default: USD
  steps:
  - stepId: createCustomer
    description: >-
      Create the customer record that will own the funding account.
    operationId: createCustomer
    requestBody:
      contentType: application/json
      payload:
        customerIdentifier: $inputs.customerIdentifier
        displayName: $inputs.customerDisplayName
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      customerIdentifier: $response.body#/customerIdentifier
      customerStatus: $response.body#/status
  - stepId: createAccount
    description: >-
      Provision a sub-account under the newly created customer to hold the
      reward funding balance.
    operationId: createAccount
    parameters:
    - name: customerIdentifier
      in: path
      value: $steps.createCustomer.outputs.customerIdentifier
    requestBody:
      contentType: application/json
      payload:
        accountIdentifier: $inputs.accountIdentifier
        displayName: $inputs.accountDisplayName
        currencyCode: $inputs.currencyCode
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      accountIdentifier: $response.body#/accountIdentifier
  - stepId: confirmAccount
    description: >-
      Read the account back to confirm it exists and capture its starting
      balance.
    operationId: getAccount
    parameters:
    - name: customerIdentifier
      in: path
      value: $steps.createCustomer.outputs.customerIdentifier
    - name: accountIdentifier
      in: path
      value: $steps.createAccount.outputs.accountIdentifier
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      accountIdentifier: $response.body#/accountIdentifier
      currentBalance: $response.body#/currentBalance
      accountStatus: $response.body#/status
  outputs:
    customerIdentifier: $steps.createCustomer.outputs.customerIdentifier
    accountIdentifier: $steps.confirmAccount.outputs.accountIdentifier
    currentBalance: $steps.confirmAccount.outputs.currentBalance