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

# Proves de sandbox

> Controla els resultats de capacitats, tasques, carteres i transferències mentre construeixes la teva integració.

El sandbox utilitza el mateix host d'API que la producció. Una clau d'API de sandbox selecciona l'entorn de proves, on els helpers simulen resultats sense moure fons reals.

Manté la clau al teu backend. Els helpers de sandbox no substitueixen el compliment ni la incorporació de producció.

```bash theme={null}
export API_BASE='https://platform.swipelux.com'
export SWIPELUX_SANDBOX_API_KEY='replace-with-your-sandbox-key'
```

## Prova la preparació d'una capacitat

Després de sol·licitar una capacitat, estableix el seu estat al sandbox amb [`POST /v3/sandbox/customers/{customerId}/capabilities/{capabilityId}/status`](/api-reference/sandbox/post-v3-sandbox-customers-by-customer-id-capabilities-by-capability-id-status):

```bash theme={null}
curl --request POST \
  "${API_BASE}/v3/sandbox/customers/${CUSTOMER_ID}/capabilities/${CAPABILITY_ID}/status" \
  --header "X-API-Key: ${SWIPELUX_SANDBOX_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{"status":"ready"}'
```

Torna a obtenir la capacitat després d'utilitzar el helper. Tracta el seu `status` i `openTaskIds` actuals com el resultat que el teu producte ha de gestionar.

## Prova una tasca oberta

Crea una tasca amb àmbit de capacitat amb [`POST /v3/sandbox/tasks`](/api-reference/sandbox/post-v3-sandbox-tasks):

```bash theme={null}
curl --request POST \
  "${API_BASE}/v3/sandbox/tasks" \
  --header "X-API-Key: ${SWIPELUX_SANDBOX_API_KEY}" \
  --header "Content-Type: application/json" \
  --data @- <<JSON
{
  "scope": {
    "type": "capability",
    "customerId": "${CUSTOMER_ID}",
    "capabilityId": "${CAPABILITY_ID}"
  },
  "items": [
    {
      "type": "explanation",
      "request": "Explain the source of funds."
    }
  ]
}
JSON
```

Emmagatzema `data.id` com a `TASK_ID`, `data.revision` com a `TASK_REVISION` i l'actual `data.requirements[0].id` com a `REQUIREMENT_ID`. Envia la resposta mitjançant [`POST /v3/customers/{customerId}/tasks/{taskId}/submissions`](/api-reference/task-submissions/create-customer-task-submission):

```bash theme={null}
curl --request POST \
  "${API_BASE}/v3/customers/${CUSTOMER_ID}/tasks/${TASK_ID}/submissions" \
  --header "X-API-Key: ${SWIPELUX_SANDBOX_API_KEY}" \
  --header "Idempotency-Key: sandbox-task-submission-001" \
  --header "Content-Type: application/json" \
  --data @- <<JSON
{
  "taskRevision": ${TASK_REVISION},
  "answers": [
    {
      "requirementId": "${REQUIREMENT_ID}",
      "answer": {
        "type": "text",
        "value": "Sandbox requirement completed."
      }
    }
  ]
}
JSON
```

A continuació, accepta o rebutja l'enviament actual amb [`POST /v3/sandbox/tasks/{taskId}/review`](/api-reference/sandbox/post-v3-sandbox-tasks-by-task-id-review):

```bash theme={null}
curl --request POST \
  "${API_BASE}/v3/sandbox/tasks/${TASK_ID}/review" \
  --header "X-API-Key: ${SWIPELUX_SANDBOX_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{"outcome":"accepted"}'
```

Utilitza [Capacitats i tasques](/ca/integration/onboarding/capabilities-and-requirements) per al patró de compleció de tasques en producció.

## Finança una cartera de sandbox

Acredita una cartera emesa amb [`POST /v3/sandbox/accounts/{accountId}/topup`](/api-reference/sandbox/post-v3-sandbox-accounts-by-account-id-topup):

```bash theme={null}
curl --request POST \
  "${API_BASE}/v3/sandbox/accounts/${ACCOUNT_ID}/topup" \
  --header "X-API-Key: ${SWIPELUX_SANDBOX_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{"amount":"250.00","currency":"USDC"}'
```

Emmagatzema el `data.id` retornat com a `TRANSFER_ID` quan vulguis inspeccionar la transferència de finançament simulada.

## Completa o falla una transferència

Estableix el resultat amb [`POST /v3/sandbox/transfers/{transferId}/state`](/api-reference/sandbox/post-v3-sandbox-transfers-by-transfer-id-state):

<Tabs>
  <Tab title="Completar">
    ```bash theme={null}
    curl --request POST \
      "${API_BASE}/v3/sandbox/transfers/${TRANSFER_ID}/state" \
      --header "X-API-Key: ${SWIPELUX_SANDBOX_API_KEY}" \
      --header "Content-Type: application/json" \
      --data '{"state":"completed"}'
    ```
  </Tab>

  <Tab title="Fallar">
    ```bash theme={null}
    curl --request POST \
      "${API_BASE}/v3/sandbox/transfers/${TRANSFER_ID}/state" \
      --header "X-API-Key: ${SWIPELUX_SANDBOX_API_KEY}" \
      --header "Content-Type: application/json" \
      --data @- <<'JSON'
    {
      "state": "failed",
      "stateDetail": {
        "code": "sandbox_review",
        "message": "Sandbox transfer failed."
      }
    }
    JSON
    ```
  </Tab>
</Tabs>

A continuació, executa un flux de [cobrament](/ca/integration/receive-funds), [pagament](/ca/integration/send-funds) o [compte bancari emès](/ca/integration/issue-bank-account) al sandbox.


## Related topics

- [Accionistes, UBOs i persones de control](/ca/knowledge-base/business-onboarding/shareholders-ubos-and-control-persons.md)
- [Requisits de documents del negoci](/ca/knowledge-base/business-onboarding/document-requirements.md)
- [Autenticació](/ca/integration/authentication.md)
- [Quickstart](/ca/integration/quickstart.md)
- [Flux de treball KYB](/ca/knowledge-base/business-onboarding/kyb-workflow.md)
