> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rwsintegration.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SOAP APIs

> Extract data from SOAP web services through RWS Connect

Many ERPs and HR/payroll systems expose their data only through SOAP web services: XML envelopes, WSDL contracts, custom authentication headers and order-sensitive payloads. SOAP sources are served by **RWS Connect**: we build a managed pipeline that extracts from your SOAP services and exposes them through the **RWS Connect API**, a simple REST API that your integrations extract from like any other modern API.

## When to use

* The source system only offers SOAP web services (common in HR, payroll and fiscal ERPs)
* Getting one complete record requires calling several SOAP operations and combining the results
* The service returns deeply nested XML that would be painful to consume directly
* You need both a scheduled feed of changes and a backfill of historical data

## How it works

1. **RWS Connect calls the SOAP operations for you**, with authentication, pagination and retries included
2. **The pipeline combines and flattens the results**: data from multiple operations is joined into complete records, and nested XML becomes flat columns
3. **Your integration extracts the table** through the RWS Connect API, like any other REST source

The pipeline runs on the agreed schedule (typically daily) and can also backfill history over a date range, so your table starts complete instead of empty.

Everything the platform offers for API extractions works unchanged: [pagination](/en/features/extract/pagination), [dynamic parameters](/en/features/extract/dynamic-parameters), [business rules](/en/features/business-rules/overview) and [scheduling](/en/features/extract/scheduling).

## What you provide

| Item                  | Details                                                                                                                                        |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Endpoints             | The SOAP service URLs, and the WSDL when available                                                                                             |
| Credentials           | Whatever the service's authentication requires (user/password, tenant identifiers, and so on)                                                  |
| Sample envelopes      | A sample request **and** response for each operation. Most SOAP services are strict about element order and namespaces, so real samples matter |
| Operations and fields | Which operations to call and which fields you need in the result                                                                               |
| Filter windows        | How the data is filtered per run (for example, records modified in a date range)                                                               |
| Network access        | [VPN configuration](/en/features/connections/vpn), if the service is not publicly reachable                                                    |
| Update cadence        | How often the data should be refreshed                                                                                                         |
| Table name            | The name you want for the resulting table                                                                                                      |

## Requesting the connector

Email [connect@rwsintegration.com](mailto:connect@rwsintegration.com) with the items above to open a ticket.

<Info>
  Your table is ready within **two business days** (SLA) after access and the information above are provided. If access requires a VPN, [VPN setup](/en/features/connections/vpn) takes an additional two business days before the pipeline is built.
</Info>

## How your data appears

* One table per dataset, named as agreed in the ticket
* Nested XML structures flattened into `snake_case` columns
* Each column is prefixed with the operation or endpoint it came from (for example `employees_name` and `contracts_start_date`), and every record is delivered as a single flat JSON object (see [Column prefixes](/en/features/extract/connect-api#column-prefixes))
* Every run adds a snapshot stamped with the extraction date, so history is preserved. A one-time backfill can load past periods
* Standard columns on every table: `extracted_at`, `extraction_date`, `extract_start_date_parameter`, `extract_end_date_parameter`

## Next steps

<CardGroup cols={2}>
  <Card title="RWS Connect" icon="plug-circle-bolt" href="/en/core-concepts/rws-connect">
    Understand how RWS Connect works
  </Card>

  <Card title="Querying the RWS Connect API" icon="magnifying-glass" href="/en/features/extract/connect-api">
    Filters, aggregations, pagination and more
  </Card>
</CardGroup>
