SoFi Tech Solutions Program API

The core of the SoFi Tech Solutions card issuer-processor platform: 167 operations covering customer enrollment and identity verification, account and card creation, balances, authorizations, transaction and fee history, adjustments, ACH origination, bill pay, spend controls and card provisioning. Every operation is a POST with application/x-www-form-urlencoded parameters and returns a proprietary envelope whose outcome is in status_code, not in the HTTP status.

Operations 167

POST /getTransHistory Get Transaction History #
POST /getBalance Get Balance #
POST /getAuthHistory Get Authorization History #
POST /getAccountOverview Get Account Overview #
POST /createAccount Create Account #
POST /getAccountCards Get Account Cards #
POST /modifyStatus Modify Status #
POST /addAccount Add Account #
POST /updateAccount Update Account #
POST /createAchTransaction Create ACH Transaction #
POST /addPaperBiller Add Paper Biller #
POST /modifyPaperBiller Modify Paper Biller #
POST /addRppsBiller Add RPPS Biller #
POST /cancelBillPayment Cancel Bill Payment #
POST /createBillPayment Create Bill Payment #
POST /getBillers Get Billers #
POST /removeBiller Remove Biller #
POST /getBillPayHistory Get Bill Payment History #
POST /modifyRppsBiller Modify RPPS Biller #
POST /getCard Get Card #
POST /getAccessToken Get Access Token #
POST /addCard Add Card #
POST /createProvisioningRequest Create Provisioning Request #
POST /createSingleUseVirtualCard Create Single-Use Virtual Card #
POST /ping Ping #
POST /createSimulatedCardAuth Create Simulated Card Authorization #
POST /createSimulatedCardSettle Create Simulated Card Settlement #
POST /createAccountTransfer Create Account Transfer #
POST /getDepositHistory Get Deposit History #
POST /getAllTransHistory Get All Transaction History #
POST /getPendingFees Get Pending Fees #
POST /getSavingsInterest Get Savings Interest #
POST /getInterest Get Interest #
POST /getPaymentHistory Get Payment History #
POST /getFeeHistory Get Fee History #
POST /getFeeSummary Get Fee Summary #
POST /getOverdraftBalance Get Overdraft Balance #
POST /startEnrollment Start Enrollment #
POST /getEnrollmentInfo Get Enrollment Info #
POST /updateEnrollment Update Enrollment #
POST /verifyEnrollment Verify Enrollment #
POST /completeEnrollment Complete Enrollment #
POST /runEnrollmentCip Run Enrollment CIP #
POST /runCip Run CIP #
POST /createVirtualCard Create Virtual Card Account #
POST /forcePassCip Force Pass CIP #
POST /createFbEnrollment Create Federal Benefit Enrollment #
POST /updateFbEnrollment Update Federal Benefit Enrollment #
POST /getFbEnrollments Get Federal Benefit Enrollments #
POST /resubmitFbEnrollment Resubmit Federal Benefit Enrollment #
POST /voidCreateAccount Void Create Account #
POST /getAccountFeatures Get Account Features #
POST /setAccountFeature Set Account Feature #
POST /verifyAccount Verify Account #
POST /getCustomerNoteHistory Get Customer Note History #
POST /addCustomerNote Add Customer Note #
POST /setUserDefinedAccountField Set User-Defined Account Field #
POST /getUserDefinedAccountFields Get User-Defined Account Fields #
POST /getAccountById Get Account by ID #
POST /getRelatedAccounts Get Related Accounts #
POST /searchAccounts Search Accounts #
POST /setOverdraftLimit Set Overdraft Limit #
POST /getPromontoryBankList Get Promontory Bank List #
POST /chargeOffAccount Charge Off Account #
POST /getIngoCustomerId Get Ingo Customer ID #
POST /switchProduct Switch Product #
POST /setRoundupAccounts Set Roundup Accounts #
POST /getRoundupAccounts Get Roundup Accounts #
POST /recoverChargedOffAccount Recover Charged-Off Account #
POST /setAccountLevelAuthControl Set Account-Level Auth Control #
POST /getAuthControl Get Auth Control #
POST /getMccControls Get MCC Controls #
POST /getMerchantControls Get Merchant Controls #
POST /setAccountLevelMccControls Set Account-Level MCC Controls #
POST /setAccountLevelMerchantControl Set Account-Level Merchant Control #
POST /getRtfAccountRelationship Get RTF Account Relationship #
POST /deleteAccountLevelAuthControl Delete Account-Level Auth Control #
POST /deleteAccountLevelMccControl Delete Account-Level MCC Control #
POST /deleteAccountLevelMerchantControl Delete Account-Level Merchant Control #
POST /activateCard Activate Card #
POST /getCardPinChangeKey Get Card PIN-Change Key #
POST /commitCardPinChange Commit Card PIN Change #
POST /voidAddCard Void Add Card #
POST /verifyInstantIssueCard Verify Instant-Issue Card #
POST /resetCardPinFailCount Reset Card PIN-Fail Count #
POST /moveCard Move Card #
POST /verifyCardSecurityCode Verify Card Security Code #
POST /reissueCard Reissue Card #
POST /getBulkCardOrder Get Bulk Card Order #
POST /createBulkCardOrder Create Bulk Card Order #
POST /moveCardInventory Move Card Inventory #
POST /getCreditLimitChangeHistory Get Credit Limit Change History #
POST /setCreditLimit Set Credit Limit #
POST /getCreditSummary Get Credit Summary #
POST /createLocation Create Location #
POST /modifyLocation Modify Location #
POST /getLocations Get Locations #
POST /getLoadLocations Get Load Locations #
POST /createLocationFee Create Location Fee #
POST /modifyLocationFee Modify Location Fee #
POST /getIvrCallStatus Get IVR Call Status #
POST /createIvrCall Create IVR Call #
POST /getCallStatus Get Call Status #
POST /getIvrCallIdentifier Get IVR Call Identifier #
POST /getProductInfo Get Product Info #
POST /getAchAccounts Get ACH Accounts #
POST /modifyAchAccount Modify ACH Account #
POST /addAchAccount Add ACH Account #
POST /removeAchAccount Remove ACH Account #
POST /cancelAchTransaction Cancel ACH Transaction #
POST /getAchTransHistory Get ACH Transaction History #
POST /addAchAccountCorporate Add ACH Account Corporate #
POST /createHold Create Hold #
POST /expireHold Expire Hold #
POST /createPayment Create Payment #
POST /assessFee Assess Fee #
POST /reverseFee Reverse Fee #
POST /createAdjustment Create Adjustment #
POST /reverseAdjustment Reverse Adjustment #
POST /getHoldHistory Get Hold History #
POST /updatePayment Update Payment #
POST /reverseAccountTransfer Reverse Account Transfer #
POST /updatePendingMerchantCredit Update Pending Merchant Credit #
POST /getPendingMerchantCredits Get Pending Merchant Credits #
POST /modifyPendingDepositStatus Modify Pending Deposit Status #
POST /getPendingDeposits Get Pending Deposits #
POST /expireAuthorization Expire Authorization #
POST /searchBillerDirectory Search Biller Directory #
POST /getScheduledBillPayments Get Scheduled Bill Payments #
POST /createGroup Create Group #
POST /updateGroup Update Group #
POST /getRootGroups Get Root Groups #
POST /getGroupsInfo Get Groups Info #
POST /setAccountGroupRelationships Set Account Group Relationships #
POST /removeAccountGroupRelationship Remove Account Group Relationship #
POST /getGroupHierarchy Get Group Hierarchy #
POST /getAccountGroupRelationships Get Account Group Relationships #
POST /deleteGroups Delete Groups #
POST /getDirectDepositSwitchToken Get Direct Deposit Switch Token #
POST /getAlerts Get Alerts #
POST /getAlertsBlackout Get Alerts Blackout #
POST /getCarrierList Get Carriers List #
POST /modifyOnDemandAlertStatus Modify On-Demand Alert Status #
POST /setAlerts Set Alerts #
POST /setAlertsBlackout Set Alerts Blackout #
POST /verifyOnDemandAlertStatus Verify On-Demand Alert Status #
POST /setAutoPayPlan Set AutoPay Plan #
POST /setAutoPayAttempt Set AutoPay Attempt #
POST /getAutoPayHistory Get AutoPay History #
POST /getAutoPayPlan Get AutoPay Plan #
POST /getCardTokens Get Card Tokens #
POST /manageCardToken Manage Card Token #
POST /getAuthorizedUsers Get Authorized Users #
POST /getOverdraftLimitChangeHistory Get Overdraft Limit Change History #
POST /getCorporateCreditChangeHistory Get Corporate Credit Change History #
POST /getCorporateCreditSummary Get Corporate Credit Summary #
POST /setCorporateCreditLimit Set Corporate Credit Limit #
POST /isCorpCreditFundingAccount Is Corporate Credit Funding Account #
POST /isCorpCreditSpendingAccount Is Corporate Credit Spending Account #
POST /isRtfFundingAccount Is RTF Funding Account #
POST /isRtfSpendingAccount Is RTF Spending Account #
POST /createSimulatedAchTransaction Create Simulated Incoming ACH Transaction #
POST /cancelSimulatedAchTransaction Cancel Simulated Incoming ACH Transaction #
POST /getSimulatedAchTransaction Get Simulated Incoming ACH Transaction #
POST /getAllSimulatedAchTransactions Get All Simulated Incoming ACH Transactions #
POST /replaceLostStolenCard Replace Lost/Stolen Card #
POST /getBillpaySwitchToken Get Billpay Switch Token #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sofi-tech-solutions-program-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sofi-technologies-program-api-openapi.json Raw ↑
{"paths":{"/getTransHistory":{"post":{"responses":{"default":{"content":{"application/json":{"schema":{"type":"object","properties":{"status_code":{"type":"integer","format":"int32","nullable":true,"description":"The response status code. May return a string for some statuses."},"status":{"type":"string","nullable":true,"description":"The condition of a process or response"},"processing_time":{"type":"number","format":"float","nullable":true,"description":"The time elapsed in processing the transaction"},"echo":{"nullable":true,"description":"A structure that contains transaction ID information","type":"object","properties":{"transaction_id":{"type":"string","nullable":true,"description":"An ID that represents an API transaction"},"provider_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"Store a related timestamp for reporting and troubleshooting purposes"},"provider_transaction_id":{"type":"string","nullable":true,"description":"Secondary transaction identifier (generated by a provider)"}},"required":["provider_timestamp","provider_transaction_id","transaction_id"]},"system_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"A system generated timestamp"},"rtoken":{"type":"string","nullable":true,"description":"A system-generated ID used for tracking"},"errors":{"type":"array","description":"A list of errors generated while the request was processed","items":{"type":"string"}},"response_data":{"nullable":true,"description":"A structure for the response data. It can be empty but usually will contain information.","type":"object","properties":{"start_date":{"type":"string","format":"date-time","description":"The start date for the transaction range"},"end_date":{"type":"string","format":"date-time","description":"The end date for the transaction range"},"number_of_pages":{"type":"integer","format":"int32","description":"The total number of pages available in the paginated response"},"page":{"type":"integer","format":"int32","description":"The current page being retunred in the paginated response"},"total_record_count":{"type":"integer","format":"int32","description":"Number of records in the accounts list display"},"transaction_count":{"type":"integer","format":"int32","description":"The number of transactions listed in the response"},"transactions":{"type":"array","description":"List of transactions","items":{"type":"object","properties":{"pmt_ref_no":{"type":"string","nullable":true,"description":"<a href=\"doc:about-accounts#prn\" target=\"_blank\">Payment reference number</a>."},"act_id":{"type":"string","nullable":true,"description":"Transaction activity identifier used in the SoFi Tech Solutions system"},"act_type":{"type":"string","nullable":true,"description":"Identifier for the transaction activity type. See the <a href=\"ref:api-reference-activity-type\" target=\"_blank\">Activity Type</a> enumeration."},"post_ts":{"type":"string","format":"date-time","nullable":true,"description":"System timestamp when the transaction posted to the customer account, in <a href=\"ref:system-time\" target=\"_blank\">our system time</a>"},"amt":{"type":"string","nullable":true,"description":"The transaction amount in the currency of the account. A negative amount debits funds from the customer account."},"details":{"type":"string","nullable":true,"description":"Description provided by the merchant about the transaction (DE043)"},"description":{"type":"string","nullable":true,"description":"Description of the activity type specified in the `act_type` field. See the <a href=\"ref:api-reference-activity-type\" target=\"_blank\">Activity Type</a> enumeration."},"source_id":{"type":"string","nullable":true,"description":"System-generated identifier that maps to the original transaction, such as `auth_id`, `pmt_id`, or `adj_id`"},"bal_id":{"type":"string","nullable":true,"description":"Balance ID, a system-generated identifier for the account on which the transaction occurs. Maps to `galileo_account_number`."},"prod_id":{"type":"string","nullable":true,"description":"Identifier for the product associated with the account"},"auth_ts":{"type":"string","format":"date-time","nullable":true,"description":"System timestamp when the transaction was authorized, in <a href=\"ref:system-time\" target=\"_blank\">our system time</a>"},"trans_code":{"type":"string","nullable":true,"description":"Reference your program's <a href=\"ref:api-reference-activity-type\" target=\"_blank\">activity</a> and <a href=\"ref:api-reference-transaction-types\" target=\"_blank\">transaction types</a> for possible values."},"ach_transaction_id":{"type":"string","nullable":true,"description":"Identifier for the ACH transaction, if applicable"},"external_trans_id":{"type":"string","nullable":true,"description":"Optional identifier for a transaction that you supply. External to the system."},"original_auth_id":{"type":"string","nullable":true,"description":"The `auth_id` of the previous transaction in the sequence, if any. Maps to `prior_id`."},"network_code":{"type":"string","nullable":true,"description":"A system-generated code to identify the subnetwork over which the transaction took place. Maps to `network_id`."},"local_amt":{"type":"string","nullable":true,"description":"Amount, in cents, of the authorization request, in the currency at the point of sale. 12-digit number including leading zeros. This amount does not include upcharges or program fees. (DE004)"},"local_curr_code":{"type":"string","nullable":true,"description":"Currency code for `local_amt` (DE049)"},"settle_amt":{"type":"string","nullable":true,"description":"The transaction amount in the settlement currency (DE005)"},"settle_curr_code":{"type":"string","nullable":true,"description":"Currency code for `settle_amt` (DE050)"},"billing_amt":{"type":"string","nullable":true,"description":"The transaction amount in the currency of the account (DE006) "},"billing_curr_code":{"type":"string","nullable":true,"description":"Currency code for `billing_amt` (DE051)"},"mcc":{"type":"string","nullable":true,"description":"Category code for the merchant that initiated the transaction (DE018)"},"merchant_id":{"type":"string","nullable":true,"description":"Network-assigned identifier for a merchant (DE042)"},"formatted_merchant_desc":{"type":"string","nullable":true,"description":"The same information as in the `details` field, with formatting"},"terminal_id":{"type":"string","nullable":true,"description":"Identifier for the card reader at the point of sale (DE041)"},"card_id":{"type":"string","nullable":true,"description":"A system-generated identifier for a card, which can be used instead of the PAN. Maps to `cad`."},"credit_ind":{"type":"string","nullable":true,"description":"Indicates whether a PIN was input at the point of sale. `Y` = No PIN was input. `N` = A PIN was input. `None` = Not a card transaction."},"iac_tax":{"type":"number","format":"float","nullable":true,"description":"Impuesto al Consumo. Colombian consumption tax. Required for the Mastercard Interchange Intracountry Calculation Program."},"iva_tax":{"type":"number","format":"float","nullable":true,"description":"Impuesto al Valor Agregado. Colombian value-added tax. Required for the Mastercard Interchange Intracountry Calculation Program."},"funding_account_prn":{"type":"string","nullable":true,"description":"The <<glossary:PRN>> of the <<glossary:RTF>> funding account"},"spending_account_prn":{"type":"string","nullable":true,"description":"The PRN of the RTF spending account"},"original_incremental_id":{"type":"integer","format":"int32","nullable":true,"description":"The original incremental id. The id for the first incremental transaction"},"latest_incremental_id":{"type":"integer","format":"int32","nullable":true,"description":"The latest incremental id. The id for the most recent transaction"}},"required":["act_id","act_type","amt","auth_ts","bal_id","description","details","mcc","pmt_ref_no","post_ts","prod_id","source_id","trans_code"]}}},"required":["end_date","number_of_pages","page","start_date","total_record_count","transaction_count","transactions"]}},"required":["echo","processing_time","response_data","rtoken","status","status_code","system_timestamp"]},"examples":{"response":{"value":"{\n    \"status_code\": 0,\n    \"status\": \"Success\",\n    \"processing_time\": 0.065,\n    \"response_data\": {\n        \"start_date\": \"2025-12-01 00:00:00\",\n        \"end_date\": \"2025-07-13 23:59:59\",\n        \"number_of_pages\": 1,\n        \"page\": 1,\n        \"total_record_count\": 4,\n        \"transaction_count\": 4,\n        \"transactions\": [\n            {\n                \"pmt_ref_no\": \"001108537422\",\n                \"act_id\": \"122876467\",\n                \"act_type\": \"AD\",\n                \"mcc\": \"534882\",\n                \"post_ts\": \"2025-01-17 10:01:06\",\n                \"amt\": \"-5\",\n                \"details\": \"test adj\",\n                \"description\": \"Adjustment\",\n                \"source_id\": \"52621\",\n                \"bal_id\": \"425782\",\n                \"prod_id\": \"88\",\n                \"auth_ts\": \"2025-01-17 10:01:06\",\n                \"trans_code\": \"ADF\",\n                \"ach_transaction_id\": null,\n                \"external_trans_id\": \"60130481\",\n                \"original_auth_id\": \"0\",\n                \"network_code\": \"?\",\n                \"local_amt\": null,\n                \"local_curr_code\": null,\n                \"settle_amt\": null,\n                \"settle_curr_code\": null,\n                \"billing_amt\": null,\n                \"billing_curr_code\": null,\n                \"merchant_id\": \"\",\n                \"formatted_merchant_desc\": \"\",\n                \"terminal_id\": \"\",\n                \"card_id\": \"0\",\n                \"iac_tax\": \"0\",\n                \"iva_tax\": \"0\"\n            },\n            {\n                \"pmt_ref_no\": \"001108537422\",\n                \"act_id\": \"122876352\",\n                \"act_type\": \"FE\",\n                \"mcc\": \"5344778\",\n                \"post_ts\": \"2025-01-17 09:46:43\",\n                \"amt\": \"-9.95\",\n                \"details\": \"Activation Fee\",\n                \"description\": \"Fee\",\n                \"source_id\": \"690045\",\n                \"bal_id\": \"425782\",\n                \"prod_id\": \"88\",\n                \"auth_ts\": \"2025-01-17 09:46:43\",\n                \"trans_code\": \"FE0201\",\n                \"ach_transaction_id\": null,\n                \"external_trans_id\": \"\",\n                \"original_auth_id\": \"0\",\n                \"network_code\": \"?\",\n                \"local_amt\": null,\n                \"local_curr_code\": null,\n                \"settle_amt\": null,\n                \"settle_curr_code\": null,\n                \"billing_amt\": null,\n                \"billing_curr_code\": null,\n                \"merchant_id\": \"\",\n                \"formatted_merchant_desc\": \"\",\n                \"terminal_id\": \"\",\n                \"card_id\": \"0\",\n                \"iac_tax\": \"0\",\n                \"iva_tax\": \"0\"\n            },\n            {\n                \"pmt_ref_no\": \"001108537448\",\n                \"act_id\": \"122876160\",\n                \"act_type\": \"AD\",\n                \"mcc\": \"53463221\",\n                \"post_ts\": \"2025-01-17 09:23:16\",\n                \"amt\": \"-5\",\n                \"details\": \"test adj\",\n                \"description\": \"Adjustment\",\n                \"source_id\": \"52618\",\n                \"bal_id\": \"425782\",\n                \"prod_id\": \"1068\",\n                \"auth_ts\": \"2025-01-17 09:23:16\",\n                \"trans_code\": \"ADF\",\n                \"ach_transaction_id\": null,\n                \"external_trans_id\": \"66659246\",\n                \"original_auth_id\": \"0\",\n                \"network_code\": \"?\",\n                \"local_amt\": null,\n                \"local_curr_code\": null,\n                \"settle_amt\": null,\n                \"settle_curr_code\": null,\n                \"billing_amt\": null,\n                \"billing_curr_code\": null,\n                \"merchant_id\": \"\",\n                \"formatted_merchant_desc\": \"\",\n                \"terminal_id\": \"\",\n                \"card_id\": \"0\",\n                \"iac_tax\": \"0\",\n                \"iva_tax\": \"0\"\n            },\n            {\n                \"pmt_ref_no\": \"001108537430\",\n                \"act_id\": \"122876046\",\n                \"act_type\": \"PM\",\n                \"mcc\": \"534882\",\n                \"post_ts\": \"2025-01-17 09:09:16\",\n                \"amt\": \"100\",\n                \"details\": \"Retail Load\",\n                \"description\": \"Payment\",\n                \"source_id\": \"3792011\",\n                \"bal_id\": \"425782\",\n                \"prod_id\": \"1067\",\n                \"auth_ts\": \"2025-01-17 09:09:16\",\n                \"trans_code\": \"PMRL\",\n                \"ach_transaction_id\": null,\n                \"external_trans_id\": \"T6NJAH3TV5SL2UXHSSO7\",\n                \"original_auth_id\": \"0\",\n                \"network_code\": \"?\",\n                \"local_amt\": null,\n                \"local_curr_code\": null,\n                \"settle_amt\": null,\n                \"settle_curr_code\": null,\n                \"billing_amt\": null,\n                \"billing_curr_code\": null,\n                \"merchant_id\": \"\",\n                \"formatted_merchant_desc\": \"\",\n                \"terminal_id\": \"\",\n                \"card_id\": null,\n                \"iac_tax\": \"0\",\n                \"iva_tax\": \"4567.9876\"\n            }\n        ]\n    },\n    \"echo\": {\n        \"provider_transaction_id\": \"\",\n        \"provider_timestamp\": null,\n        \"transaction_id\": \"PA11CRHVK1ILQWK3WSN6\"\n    },\n    \"rtoken\": \"8cc16de0-5eda-4e2a-968e-3b08fce6f778\",\n    \"system_timestamp\": \"2025-07-13 10:32:15\"\n}"}}},"application/xml":{"examples":{"response":{"value":"<?xml version=\"1.0\" ?>\n<response>\n  <status_code>0</status_code>\n  <status>Success</status>\n  <processing_time>0.075</processing_time>\n  <response_data>\n    <start_date>2025-12-01 00:00:00</start_date>\n    <end_date>2025-07-13 23:59:59</end_date>\n    <number_of_pages>1</number_of_pages>\n    <page>1</page>\n    <total_record_count>3</total_record_count>\n    <transaction_count>3</transaction_count>\n    <transactions>\n      <transaction>\n        <pmt_ref_no>001108537430</pmt_ref_no>\n        <act_id>122876373</act_id>\n        <act_type>AD</act_type>\n        <mcc>534882</mcc>\n        <post_ts>2025-01-17 09:49:16</post_ts>\n        <amt>-5</amt>\n        <details>test adj</details>\n        <description>Adjustment</description>\n        <source_id>52619</source_id>\n        <bal_id>425782</bal_id>\n        <prod_id>1067</prod_id>\n        <auth_ts>2025-01-17 09:49:16</auth_ts>\n        <trans_code>ADF</trans_code>\n        <ach_transaction_id/>\n        <external_trans_id>76852773</external_trans_id>\n        <original_auth_id>0</original_auth_id>\n        <network_code>?</network_code>\n        <local_amt/>\n        <local_curr_code/>\n        <settle_amt/>\n        <settle_curr_code/>\n        <billing_amt/>\n        <billing_curr_code/>\n        <merchant_id/>\n        <formatted_merchant_desc/>\n        <terminal_id/>\n        <card_id>0</card_id>\n        <iac_tax>0</iac_tax>\n        <iva_tax>0</iva_tax>\n      </transaction>\n      <transaction>\n        <pmt_ref_no>001108537448</pmt_ref_no>\n        <act_id>122876160</act_id>\n        <act_type>AD</act_type>\n        <mcc>5344778</mcc>\n        <post_ts>2025-01-17 09:23:16</post_ts>\n        <amt>-5</amt>\n        <details>test adj</details>\n        <description>Adjustment</description>\n        <source_id>52618</source_id>\n        <bal_id>425782</bal_id>\n        <prod_id>1068</prod_id>\n        <auth_ts>2025-01-17 09:23:16</auth_ts>\n        <trans_code>ADF</trans_code>\n        <ach_transaction_id/>\n        <external_trans_id>66659246</external_trans_id>\n        <original_auth_id>0</original_auth_id>\n        <network_code>?</network_code>\n        <local_amt/>\n        <local_curr_code/>\n        <settle_amt/>\n        <settle_curr_code/>\n        <billing_amt/>\n        <billing_curr_code/>\n        <merchant_id/>\n        <formatted_merchant_desc/>\n        <terminal_id/>\n        <card_id>0</card_id>\n        <iac_tax>0</iac_tax>\n        <iva_tax>0</iva_tax>\n      </transaction>\n      <transaction>\n        <pmt_ref_no>001108537430</pmt_ref_no>\n        <act_id>122876046</act_id>\n        <act_type>PM</act_type>\n        <mcc>53463221</mcc>\n        <post_ts>2025-01-17 09:09:16</post_ts>\n        <amt>100</amt>\n        <details>Retail Load</details>\n        <description>Payment</description>\n        <source_id>3792011</source_id>\n        <bal_id>425782</bal_id>\n        <prod_id>1067</prod_id>\n        <auth_ts>2025-01-17 09:09:16</auth_ts>\n        <trans_code>PMRL</trans_code>\n        <ach_transaction_id/>\n        <external_trans_id>T6NJAH3TV5SL2UXHSSO7</external_trans_id>\n        <original_auth_id>0</original_auth_id>\n        <network_code>?</network_code>\n        <local_amt/>\n        <local_curr_code/>\n        <settle_amt/>\n        <settle_curr_code/>\n        <billing_amt/>\n        <billing_curr_code/>\n        <merchant_id/>\n        <formatted_merchant_desc/>\n        <terminal_id/>\n        <card_id/>\n        <iac_tax>0</iac_tax>\n        <iva_tax>0</iva_tax>\n      </transaction>\n    </transactions>\n  </response_data>\n  <echo>\n    <provider_transaction_id/>\n    <provider_timestamp/>\n    <transaction_id>2JDT56HUK8EOW5VPAYRM</transaction_id>\n  </echo>\n  <rtoken>8cc16de0-5eda-4e2a-968e-3b08fce6f778</rtoken>\n  <system_timestamp>2025-07-13 12:27:47</system_timestamp>\n</response>"}}}},"description":""}},"parameters":[],"summary":"Get Transaction History","description":"Use the Get Transaction History endpoint to retrieve a list of posted transactions (settlements, payments, adjustments, fees) during a specified timespan. This endpoint does not return unsettled authorizations.\n- As desired, use the `act_type` field in the response to filter the responses by transaction type.\n- See <a href=\"ref:record-set-paging\" target=\"_blank\">Record-Set Pagination</a> for instructions on using the paging parameters.\n- Open the Recipe below to see a response example.","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"apiLogin":{"type":"string","description":"Web service username, as provided by SoFi Tech Solutions.\nPattern: Max 50 characters\nExample: `\"AbC123-9999\"`","example":"AbC123-9999"},"apiTransKey":{"type":"string","description":"Web service password, as provided by SoFi Tech Solutions.\nPattern: Max 15 characters\nExample: `\"4sb62fh6w4h7w34g\"`","example":"4sb62fh6w4h7w34g"},"transactionId":{"type":"string","minimum":1,"maximum":60,"description":"Supply a globally unique ID to identify this endpoint request (\"transaction\"). Might be used for <a href=\"ref:idempotency#endpoints-that-use-transactionid-for-idempotency\" target=\"_blank\">idempotency</a>.\nPattern: Maximum 60 characters\nExample: `\"9845dk-39fdk3fj3-4483483478\"`","example":"123e4567-e89b-12d3-a456-426614174000"},"accountNo":{"type":"string","pattern":"^$|^([0-9]{12}|[0-9]{16})$","description":"The <<glossary:PRN>> or <<glossary:PAN>> of the account.\nPattern: PAN or PRN \nExample: `\"074103447228\"`","example":"074103447228"},"startDate":{"type":"string","format":"date","description":"The beginning date for the date range, either a date or a date-time.\nPattern: YYYY-MM-DD or YYYY-MM-DD hh:mm:ss\nExample: `\"2016-01-01\"`","example":"2016-01-01"},"endDate":{"type":"string","format":"date","description":"The end date for the date range, either a date or a date-time. Must be equal to or later than `startDate`. Max 1098 days (~3 years) after `startDate`. \nPattern: YYYY-MM-DD or YYYY-MM-DD hh:mm:ss\nExample: `\"2016-01-01\"`","example":"2016-01-01"},"recordCnt":{"type":"integer","format":"int32","nullable":true,"minimum":1,"maximum":99999,"description":"The maximum number of records per page to be returned.\nPattern: Positive integer `1-99999`\nExample: `100`","example":100},"page":{"type":"integer","format":"int32","default":1,"nullable":true,"description":"The number of the page to retrieve.\nPattern: Integer value of `1` or greater\nExample: `3`","example":3},"includeRelated":{"type":"integer","format":"int32","default":1,"enum":[0,1],"description":"Whether to return transactions for all accounts that share the balance (`bal_id`). \n- `0` &mdash; Retrieve only transactions from the specified account. \n- `1` &mdash; **Default**. Retrieve all transactions that share the same balance. \n\nPattern: Integer\nExample: `0`","example":0}},"required":["accountNo","endDate","startDate","transactionId","apiLogin","apiTransKey","providerId"]}}}},"tags":["Transactions"],"operationId":"post_gettranshistory"},"parameters":[{"$ref":"#/components/parameters/ResponseContentTypeHeaderParam"}]},"/getBalance":{"post":{"responses":{"default":{"content":{"application/json":{"schema":{"type":"object","properties":{"status_code":{"type":"integer","format":"int32","nullable":true,"description":"The response status code. May return a string for some statuses."},"status":{"type":"string","nullable":true,"description":"The condition of a process or response"},"processing_time":{"type":"number","format":"float","nullable":true,"description":"The time elapsed in processing the transaction"},"echo":{"nullable":true,"description":"A structure that contains transaction ID information","type":"object","properties":{"transaction_id":{"type":"string","nullable":true,"description":"An ID that represents an API transaction"},"provider_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"Store a related timestamp for reporting and troubleshooting purposes"},"provider_transaction_id":{"type":"string","nullable":true,"description":"Secondary transaction identifier (generated by a provider)"}},"required":["provider_timestamp","provider_transaction_id","transaction_id"]},"system_timestamp":{"type":"string","format":"date-time","nullable":true,"description":"A system generated timestamp"},"rtoken":{"type":"string","nullable":true,"description":"A system-generated ID used for tracking"},"errors":{"type":"array","description":"A list of errors generated while the request was processed","items":{"type":"string"}},"response_data":{"nullable":true,"description":"A structure for the response data. It can be empty but usually will contain information.","type":"object","properties":{"ledger_balance":{"type":"number","format":"float","description":"The total of all transactions—credit and debit—that have officially been posted to the account. This balance does not factor in pending transactions such as authorization holds or account holds."},"balance":{"type":"number","format":"float","description":"For debit accounts, this is the available balance to spend, meaning the total of all posted transactions with all pending transactions subtracted out. For credit accounts this is the unpaid balance."},"available_balance":{"type":"number","format":"float","description":"For debit accounts, this is the total of all posted transactions with all pending transactions subtracted out. Also known as the \"open to buy.\" See <a href=\"doc:account-balances#available-balance\" target=\"_blank\">Available balance</a> for details. For credit accounts, this is the amount remaining of the credit limit."},"balance_without_pending":{"type":"string","description":"For debit accounts, the total of all posted transactions with only pending authorizations subtracted out. For credit accounts this is the same as `balance`. "},"currency_code":{"type":"string","description":"A three-digit ISO 4217 code for the currency of the account. All amounts in this response are in this currency."},"pending_adjustments":{"type":"number","format":"float","nullable":true,"description":"**To be deprecated**: This field will always be `0`."},"pending_billpay":{"type":"number","format":"float","nullable":true,"description":"The total amount of pending bill payments. A bill payment is pending between the time it is created and when the amount is adjusted out of the account."},"pending_purchase":{"type":"number","format":"float","nullable":true,"description":"**To be deprecated**: This field will always be `0`."},"balance_without_auths":{"type":"number","format":"float","description":"The `balance` without subtracting out authorization holds. This field is populated only when the BWOOA parameter is set."}},"required":["available_balance","balance","balance_without_pending","currency_code","ledger_balance","pending_adjustments","pending_billpay","pending_purchase"]}},"required":["echo","processing_time","response_data","rtoken","status","status_code","system_timestamp"]},"examples":{"response":{"value":"{\n    \"status_code\": 0,\n    \"status\": \"Success\",\n    \"processing_time\": 0.088,\n    \"response_data\": {\n        \"balance\": 1218.2,\n        \"available_balance\": 1218.2,\n        \"balance_without_pending\": \"1218.20\",\n        \"currency_code\": \"840\",\n        \"pending_adjustments\": 0,\n        \"pending_billpay\": 0,\n        \"pending_purchase\": 0,\n        \"ledger_balance\": 1241.7,\n        \"balance_without_auths\": 1238.2\n    },\n    \"echo\": {\n        \"provider_transaction_id\": \"\",\n        \"provider_timestamp\": null,\n        \"transaction_id\": \"CUXXD4AEUMWOBMPKYBZ8\"\n    },\n    \"rtoken\": \"8cc16de0-5eda-4e2a-968e-3b08fce6f778\",\n    \"system_timestamp\": \"2025-07-13 10:31:56\"\n}"}}},"application/xml":{"examples":{"response":{"value":"<?xml version=\"1.0\" ?>\n<response>\n  <status_code>0</status_code>\n  <status>Success</status>\n  <processing_time>0.098</processing_time>\n  <response_data>\n    <balance>1234.7</balance>\n    <available_balance>1234.7</available_balance>\n    <balance_without_pending>1234.7</balance_without_pending>\n    <currency_code>840</currency_code>\n    <pending_adjustments>0</pending_adjustments>\n    <pending_billpay>0</pending_billpay>\n    <pending_purchase>0</pending_purchase>\n    <ledger_balance>1241.7</ledger_balance>\n    <balance_without_auths>1254.7</balance_without_auths>\n  </response_data>\n  <echo>\n    <provider_transaction_id/>\n    <provider_timestamp/>\n    <transaction_id>G9FMERIBYQF8L30JFPLF</transaction_id>\n  </echo>\n  <rtoken>8cc16de0-5eda-4e2a-968e-3b08fce6f778</rtoken>\n  <system_timestamp>2025-07-13 12:27:18</system_timestamp>\n</response>"}}}},"description":""}},"parameters":[],"summary":"Get Balance","description":"Use the Get Balance endpoint to retrieve the specified account balance and its currency code. This endpoint returns the balances for all accounts that share the same balance ID (Galileo account number). For an explanation of the fields in the response, see <a href=\"doc:account-balances#get-balance-fields\" target=\"_blank\">Get Balance fields</a> in the _Account Balances_ guide.","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"apiLogin":{"type":"string","description":"Web service username, as provided by SoFi Tech Solutions.\nPattern: Max 50 characters\nExample: `\"AbC123-9999\"`","example":"AbC123-9999"},"apiTransKey":{"type":"string","description":"Web service password, as provided by SoFi Tech Solutions.\nPattern: Max 15 characters\nExample: `\"4sb62fh6w4h7w34g\"`","example":"4sb62fh6w4h7w34g"},"transactionId":{"type":"string","minimum":1,"maximum":60,"description":"Supply a globally unique ID to identify this endpoint request (\"transaction\"). Might be used for <a href=\"ref:idempotency#endpoints-that-use-transactionid-for-idempotency\" target=\"_blank\">idempotency</a>.\nPattern: Maximum 60 characters\nExample: `\"9845dk-39fdk3fj3-4483483478\"`","example":"123e4567-e89b-12d3-a456-426614174000"},"accountNo":{"type":"string","pattern":"^$|^([0-9]{12}|[0-9]{16})$","description":"The <<glossary:PRN>> or <<glossary:PAN>> of the account.\nPattern: PAN or PRN \nExample: `\"074103447228\"`","example":"074103447228"}},"required":["accountNo","transactionId","apiLogin","apiTransKey","providerId"]}}}},"tags":["Accounts and Cards"],"operationId":"post_getbalance"},"parameters":[{"$ref":"#/components/parameters/ResponseContentTypeHeaderParam"}]},"/getAuthHistory":{"post":{"description":"Use the Get Authorization History endpoint to retrieve a list of authorizations.  By default it returns authorizations that have not settled, expired, or been reversed.\nYou can return authorizations in any status by setting `includeAllStatuses`.\n- See <a href=\"ref:record-set-paging\" target=\"_blank\">Record-Set Pagination</a> for instructions on using the paging parameters.\n- Open the Recipe below to see a response example.","operationId":"post_getauthhistory","parameters":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"properties":{"accountNo":{"description":"The <<glossary:PRN>> or <<glossary:PAN>> of the account.\nPattern: PAN or PRN\nExample: `\"074103447228\"`","example":"074103447228","pattern":"^.+$","type":"string"},"apiLogin":{"description":"Web service username, as provided by SoFi Tech Solutions.\nPattern: Max 50 characters\nExample: `\"AbC123-9999\"`","example":"AbC123-9999","type":"string"},"apiTransKey":{"description":"Web service password, as provided by SoFi Tech Solutions.\nPattern: Max 15 characters\nExample: `\"4sb62fh6w4h7w34g\"`","example":"4sb62fh6w4h7w34g","type":"string"},"cardId":{"description":"Supply the cardId (CAD) to filter authorization history to those transactions performed on the provided card.","example":"12345","nullable":true,"type":"integer"},"endDate":{"description":"The end date for the date range, either a date or a date-time. Must be equal to or later than `startDate`. Max 1098 days (~3 years) after `startDate`. \nPattern: YYYY-MM-DD or YYYY-MM-DD hh:mm:ss\nExample: `\"2016-01-01\"`","example":"2016-01-01","format":"date","type":"string"},"includeAllStatuses":{"description":"When true, include transactions in all statuses.  When not set, return transactions in the \"pending\" statuses.\n \nPattern: Boolean\nExample: `0`","example":0,"nullable":true,"type":"boolean"},"includeExtendedRiskData":{"description":"When true, include extended risk data.\n \nPattern: Boolean\nExample: `0`","example":0,"nullable":true,"type":"boolean"},"includeRelated":{"description":"Whether to return transactions from accounts that share the same balance (`galileo_account_number`). \n\nWhen `accountNo` contains a primary account:\n- `0` or `1` &mdash; Retrieve all transactions from accounts that share the same balance. \n- _blank_ &mdash; Retrieve all transactions from the specified account only.\n\nWhen `accountNo` contains a secondary account:\n- `0` &mdash; Retrieve all transactions from the specified account only. \n- `1` &mdash; Retrieve all transactions from accounts that share the same balance.\n \nPattern: Boolean\nExample: `0`","example":0,"nullable":true,"type":"boolean"},"page":{"default":1,"description":"The number of the page to retrieve.\nPattern: Integer value of `1` or greater\nExample: `3`","example":3,"maximum":999999,"minimum":1,"nullable":true,"type":"integer"},"recordCnt":{"description":"The maximum number of records per page to be returned.\nPattern: Positive integer `1-99999`\nExample: `100`","example":100,"maximum":99999,"minimum":1,"nullable":true,"type":"integer"},"startDate":{"description":"The beginning date for the date range, either a date or a date-time.\nPattern: YYYY-MM-DD or YYYY-MM-DD hh:mm:ss\nExample: `\"2016-01-01\"`","example":"2016-01-01","format":"date","type":"string"},"transactionId":{"description":"Supply a globally unique ID to identify this endpoint request (\"transaction\"). Might be used for <a href=\"ref:idempotency#endpoints-that-use-transactionid-for-idempotency\" target=\"_blank\">idempotency</a>. A UUID is preferred.\nPattern: Maximum 60 characters\nExample: `\"9845dk-39fdk3fj3-4483483478\"`","example":"123e4567-e89b-12d3-a456-426614174000","maxLength":60,"minLength":1,"type":"string"}},"required":["accountNo","endDate","startDate","transactionId","apiLogin","apiTransKey","providerId"],"type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"

# --- truncated at 32 KB (1466 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sofi-technologies/refs/heads/main/openapi/sofi-technologies-program-api-openapi.json