🔗
Linker Studio
  • Welcome!!
  • 🚀GETTING STARTED
    • Set up your custom project from Linker Studio
    • How to run the project
    • Linker Features
      • Glossary
      • Web
      • Mobile
        • Aggregators
        • Analytics
        • Authentication
        • BaaS
        • Carousel
        • Client Support
        • Error and Crash Reporting
        • Info Onboarding
        • KYC
        • Payroll
        • Pii Onboarding
        • Push Notifications - OneSignal
        • Settings
        • Subscriptions
      • Backend
        • Authentication
        • MFA
        • BaaS
        • Aggregators
        • Notifications
        • Payments
        • Deposit Switching
        • Support
        • Vault
        • Storage
        • Monitoring
        • Analytics
  • 🖥️WEB FEATURES
    • Page 2
  • 📱Mobile App Features
    • Project File Structure
    • Figma Tokens Integration
    • Core Module
      • Core UI Components
        • Atoms
        • Molecules
        • Organisms
        • Templates
      • Core Elements
      • Hooks
        • Force update
      • Endpoints used
      • States And Selectors
        • contentsDocuments
    • Modules
      • [New Feature Template]- Feature Name
        • UI Components - Template
          • Atoms
          • Molecules
          • Organisms
          • Templates
        • Hooks - Template
        • Endpoints Used
        • States and Selectors - Template
      • 📥KYC
        • Alloy
        • Baas
          • UI Components
            • Templates
          • Hooks - Template
          • Endpoints Used
          • States and Selectors - Template
        • common
          • UI Components
            • Templates
          • Endpoints Used
      • 🤝Aggregators
        • Plaid
          • Plaid/Rize notification before disabling account
      • 🤖Analytics
        • Amplitude
      • 🔐Authentication
        • Hooks
        • Auth0
          • Hooks
            • Login
            • Forgot password
          • 📧Verify Email
            • Hooks
        • Biometrics
          • Hooks
        • Auto Logout
        • States And Selectors
          • Authentication
      • 💰BaaS
        • Common
          • BaaS Navigation
          • External Accounts
          • UI Components
            • Molecules
            • Organisms
            • Templates
          • Hooks
            • Statements
            • Recurrent Transfers
            • Cards
              • Get Full Card
              • Lock and Unlock
              • Request Physical Debit Card
              • Reissue Debit Card
              • Set / Reset Debit Card Pin
            • Transfer
          • States And Selectors
            • Customer
            • Accounts
            • Cards
            • Transactions
          • Endpoints used
          • Constants
            • ACH_SERVICES
        • treasury
          • Constants
            • CONFIG_VALUES
      • 🛂Client Support
      • 🐛Error and Crash Reporting
        • Crashlytics
      • ℹ️Info Onboarding
        • States and Selectors
        • Hooks
          • Physical Card Request
      • 🌯Linker Wrapper
        • Linker Wrapper Messages Structure
        • Linker Wrapper Features
          • Push Notifications
            • Braze
          • In-App Purchase
      • 🛗MFA Verification Code
        • UI Components
          • Molecules
          • Templates
        • Hooks
        • Endpoints used
        • Configurable Constants
      • 🗞️Payroll
        • UI Components
          • Organisms
          • Templates
        • Hooks
        • States and Selectors
      • 📋PII Onboarding
        • UI Components
          • Atoms
          • Molecules
          • Organisms
          • Templates
        • Hooks
        • States and Selectors
      • 🔔Push Notifications
        • OneSignal
      • 🔧Settings
      • 🗄️Vault
        • VGS Show
        • VGS Collect
    • Cookbook
      • 🏦Neobank
        • Linked Functionalities
          • Edit Personal Details Linking
          • Request Physical Debit Card Linking
          • Get customer Data after SignUp/Login
  • ⛓️Backend API
    • Environments
    • Migrations
      • Configuration
      • Migration Commands
      • Base Model
      • Migration Structure
    • Seeds and Factories
      • Configuration
      • Seeds And Factories
    • SoftDelete
    • DB Fields Encryption
    • DB Structure
    • DB Configuration Table
      • API Endpoints
    • Orchestrator
    • Swagger
      • Setup
      • Decorators for Requests and Responses
      • Decorators for Controllers and HTTP Responses
      • Auth Decorator
      • Multiple Decorators
  • 🪙Finance Integrations
    • Recurring Transfers
      • Architecture
      • Jobs Server
      • Functionality
      • BaaS
        • Rize API Endpoints
        • Treasury Prime API Endpoints
        • Business Treasury Prime API Endpoints
    • BaaS
      • Rize
        • Env Variables
        • Rize API authentication
        • Onboarding
          • Customer Enrollment
          • Get Compliance Workflow
          • Acknowledge Compliance Workflow
          • Customer Complete Enrollment
        • KYC - Know Your Customer
          • Get KYC Documents
          • Upload KYC Document
        • Accounts
          • Get Customer Accounts
          • Get Customer Account By ID
          • Create Customer Account
          • Archive Customer Account
          • Get ACH Customer Accounts
        • Debit Cards
          • Get Debit Cards
          • Get Debit Card Image
          • Lock Debit Card
          • Unlock Debit Card
          • Create Physical Card
          • Activate Debit Card
          • Get Debit Card Set-Pin URL
          • Reissue Debit Card
        • Transactions
          • Get Transactions
        • Transfers
          • Internal Transfers
          • ACH transfers
        • Statements
          • Get Statements
          • Get Statement Document
        • Fake Transactions
        • Message Queue
        • Web Sockets
        • API Endpoints
          • Account Enums
          • Debit Card Enums
          • Transaction Enums
          • KYC Enums
      • Galileo
        • Environment Variables
        • Onboarding
          • Get Customer
          • Customer Enrollment
          • Customer Complete Enrollment
        • Customer Management
          • Get Profile
          • Update Profile
        • Accounts
        • Add Accounts
        • Card Management
          • Get Debit Cards
          • Get Image Card
          • Card Statuses
          • Debit Card Activation
          • Request Physical Card
          • Set PIN
          • Lock/Unlock
        • Transfer
        • Transactions
          • Get Transactions
          • Filter Transactions
        • ACH
          • Add ACH Account
          • Get ACH Accounts
          • Remove ACH Account
          • ACH Transactions
        • Statements
        • Plaid Integration
      • Synapse
        • Environment Variables
        • Terminology
        • Resources
        • API Endpoints
    • Aggregators
      • Add Account Service and new DB Table
      • Plaid
        • Plaid Configuration
        • Application Creation
        • Custom Application
        • Configure Single or Multi Accounts
        • Security Settings
        • Verification of Environment Variables
        • API Endpoints
        • Resources
        • Integrations
          • Rize
      • MX
        • Env Configuration
        • API Endpoints
  • 🔐Authentication
    • Auth0
      • Configuration
      • Protecting an endpoint
      • Email verification
      • API Reference
    • Twilio
      • 2FA
        • Verify Service Configuration
        • Verification Workflow
        • API Endpoints
  • 🪪 KYC
    • Persona
      • Configuration
      • Environment Variables
      • KYC Flow
  • ✉️ Mailings
    • Sendgrid
      • Configuration
      • Environment Variables
      • Send Email with Attachments
  • 🆘Supports
    • Zendesk
      • Configuration
      • API Endpoints
  • 📳NOTIFICATIONS
    • OneSignal
      • Schema
      • Setup
      • Environment Variables
      • API Endpoints
  • 🔐Security
    • VGS
      • Configuration
      • Rize Route Configuration
      • VGS Vault Basics
      • VGS Show
  • 🖥️MONITORING
    • New Relic
      • Configuration
      • Interceptor
  • 🧑‍🔧CONTENT ADMINISTRATOR
    • Notifications
    • Onboardings
      • DB Schema
      • Admin - API Endpoints
      • Client - API Endpoints
    • Documents
      • Document Category
      • Document
      • Client - API Endpoints
      • Admin - API Endpoints
    • App Versions
      • Device App Versions
      • API - Administrator
      • API - Client
  • 💵Payments
    • Stripe
      • Configuration
      • Customers
      • Sources
      • Authorization
      • Charges
      • API Endpoints
Powered by GitBook
On this page

Was this helpful?

  1. Backend API

Orchestrator

PreviousAPI EndpointsNextSwagger

Last updated 2 years ago

Was this helpful?

To maintain a standard between the requests and responses of the application, each of the services that are being used are categorized.

For example:

  • Banking as Services.

Within Banking-as-a-Service, we have Rize, Galileo and Unit.

Then, the parameters that must be sent and those that are expected to be received for each of the services are studied:

For example:

  • See the format in which it receives and sends the information from the external service API (CamelCase, Snake_case, Pascal).

This are examples of responses from Galileo and Unit, where we can see that Galileo uses snake_case and Unit uses camelCase.

{
  "status_code": 0,
  "status": "Success",
  "processing_time": 0.082,
  "response_data": {
    "pmt_ref_no": "001104890593",
    "status": "N",
    "application_date": "2019-04-04",
    "balance": 1218.2,
    "currency_code": "840",
    "profile": {
      "first_name": "Automation",
      "middle_name": "Jr",
      "last_name": "Testing",
      "address_1": "33 Maple Street",
      "address_2": "#4b",
      "city": "Salt Lake City",
      "state": "UT",
      "postal_code": "84121",
      "country_code": "840",
      "home_phone": "8013656060",
      "mobile_phone": "8012222222",
      "email": "eric+plus@galileoprocessing.com",
      "dob": "1980-01-01",
      "ship_to_address": {
        "address_1": "33 Business Parkway",
        "address_2": "Suite 400",
        "city": "Salt Lake City",
        "state": "UT",
        "postal_code": "84121",
        "country_code": "840"
      },
      "express_mail": "N",
      "occupation": "Project Manager",
      "income_source": "Kroger Food & Drug"
    },
    "start_date": "2019-09-30 00:00:00",
    "end_date": "2019-10-01 23:59:59",
    "transaction_count": 0,
    "transactions": [],
    "authorization_count": 0,
    "authorizations": [],
    "pending_fees": [],
    "savings_interest": {
      "start_date": "2019-09-30 00:00:00",
      "end_date": "2019-10-01 23:59:59",
      "accrual_interest": 0,
      "interest_ytd": 0,
      "apy": "0"
    }
  },
  "echo": {
    "provider_transaction_id": "",
    "provider_timestamp": null,
    "transaction_id": "YH9JNYJUBKW0L5NKSVNB"
  },
  "rtoken": "8cc16de0-5eda-4e2a-968e-3b08fce6f778",
  "system_timestamp": "2020-07-13 10:31:50"
}
{
  "data": [
    {
      "type": "individualCustomer",
      "id": "8",
      "attributes": {
        "createdAt": "2020-05-12T19:41:04.123Z",
        "fullName": {
          "first": "Peter",
          "last": "Parker"
        },
        "ssn": "721074426",
        "address": {
          "street": "20 Ingram St",
          "street2": null,
          "city": "Forest Hills",
          "state": "NY",
          "postalCode": "11375",
          "country": "US"
        },
        "dateOfBirth": "2001-08-10",
        "email": "peter@oscorp.com",
        "phone": {
          "countryCode": "1",
          "number": "1555555566"
        },
        "status": "Active"
      },
      "relationships": {
        "org": {
          "data": {
            "type": "org",
            "id": "1"
          }
        },
        "application": {
          "data": {
            "type": "individualApplication",
            "id": "8"
          }
        }
      }
    }
  ],
  }
}
  • See the structure of each endpoint to be used for sending information.

This is a request to update a user's account information.

Galileo uses application/x-www-form-urlencoded format for sending information.

curl --request POST \
     --url https://sandbox-api.gpsrv.com/intserv/4.0/updateAccount \
     --header 'accept: application/json' \
     --header 'content-type: application/x-www-form-urlencoded' \
     --data apiLogin=AbC123-9999 \
     --data apiTransKey=4sb62fh6w4h7w34g \
     --data providerId=9999 \
     --data transactionId=9845dk-39fdk3fj3-4483483478 \
     --data accountNo=string \
     --data idType=0 \
     --data id=string \
     --data idType2=0 \
     --data id2=string \
     --data locationType=0 \
     --data location=string \
     --data locale=en_US \
     --data firstName=string \
     --data middleName=string \
     --data lastName=string \
     --data dateOfBirth=2022-10-10T18:10:08.166Z \
     --data address1=string \
     --data address2=string \

Unit uses application/vnd.api+json format to send information.

curl -X PATCH 'https://api.s.unit.sh/customers/:customerId'
-H 'Content-Type: application/vnd.api+json'
-H 'Authorization: Bearer ${TOKEN}
--data-raw '{
  "data": {
    "type": "individualCustomer",
    "attributes": {
      "address": {
        "street": "5231 Newell Rd",
        "street2": null,
        "city": "Palo Alto",
        "state": "CA",
        "postalCode": "94301",
        "country": "US"
      },
      "email": "richard@piedpiper.com",
      "phone": {
        "countryCode": "1",
        "number": "5555555555"
      },
      "authorizedUsers": [
        {
          "fullName": {
            "first": "Jared",
            "last": "Dunn"
          },
          "email": "jared@piedpiper.com",
          "phone": {
            "countryCode": "1",
            "number": "1555555590"
          }
        }
      ]
    }
  }
}'

In addition to using different formats to send information, we can see that the structure of the object that is sent is very different for both services.

Galileo is using a simpler structure (key, value) than Unit, since the parent object of Unit has other objects inside of it.

  • See each of the validations that must be met by each of the services.

Example:

  1. Dates format as established by the service.

  2. Remove hyphens in phone numbers or documents.

For this entire process, Data Transfer Objects (DTOs) were created, that are specific to Linker, and then this DTO is transformed into the DTO used by the service to which the request will be sent. In the same way, to transform the response of an external service, interfaces were created to use Linker.

For the integration of a new service, it must first be verified if the DTOs and interfaces to be used have not been defined.

Otherwise, they should be created in a general way so that if another service of the same category is integrated in the future, it can also use the same interfaces and DTOs.

⛓️
General Schema