# Open questions

Ten questions, unresolved by design: each one is a decision for Nexa, or a
joint decision, and each is referenced from the place in the portal where it
bites. **This page is the agenda for the joint technical meeting.**

## 1. Quote validity

What `expires_at` window can Nexa offer, fixed or liquidity-dependent?

*Bites at:* [1 · Quote & accept](/flow-nexa/quote-accept) ·
[`POST /v1/quotes`](/api-nexa/quotes#create-quote-op-1) <N />

## 2. Deposit deadline & credit semantics

How long does Nexa hold the locked rate waiting for the first deposit; does
an `additional_funds_requested` extend it; what exactly do `credit.sent` vs
`credit.confirmed` mean inside Nexa's core banking and what's the expected
gap?

*Bites at:* [1 · Quote & accept](/flow-nexa/quote-accept) ·
[3 · Credit decision](/flow-nexa/credit-decision) ·
[`POST /v1/quotes/{tesser_quote_id}/accept`](/api-nexa/quotes#accept-quote-op-2) <N />

## 3. Credit-decision rules & SLA

Given deposits are reports, what are Nexa's decision rules (when
credit-as-quoted vs pro-rata vs request-more vs reject), and how quickly
after a deposit report does Tesser get a decision event?

*Bites at:* [2 · Deposit reporting](/flow-nexa/deposit-reporting) ·
[3 · Credit decision](/flow-nexa/credit-decision) ·
[`POST /v1/quotes/{tesser_quote_id}/deposits`](/api-nexa/deposits#report-usdc-deposit-op-3) <N />

## 4. Rejected-deposit disposition

When Nexa rejects, what happens operationally to the USDC already in
custody? (Runbook, out-of-band, but must exist before first live GTQ.)

*Bites at:* [2 · Deposit reporting](/flow-nexa/deposit-reporting) ·
[3 · Credit decision](/flow-nexa/credit-decision) ·
[Lifecycle](/flow-nexa/lifecycle)

## 5. Payment rails & statuses

Which Guatemalan rail(s); confirm that a payout can be executed and
confirmed **synchronously** within an API call's budget, how long after a
`COMPLETED` response a failure can still surface, whether `RETURNED` is real
on that rail, expected settlement time, and `status_metadata` contents.

**Can Nexa implement the retry join?** A call that times out mid-execution
leaves Tesser without an outcome, so a retry with the same
`tesser_quote_id` must **join the execution already running** and return its
final outcome rather than start a second payout. If Nexa cannot implement
that, the recorded fallback is to reject the retry with
`409 PAYMENT_IN_PROGRESS` and have Tesser poll the
[quote read](/api-nexa/quotes#get-quote-optional-op-8) <N /> instead. **The
meeting should pick one of the two.**

*Bites at:* [4 · GTQ payout](/flow-nexa/gtq-payout) ·
[`POST /v1/payments`](/api-nexa/payments#create-payment-op-5) <N />

## 6. Nexa webhook sender

Retry policy/backoff, and confirmation that Nexa presents its client cert
when delivering webhooks (assumed in the auth design).

*Bites at:* [Webhooks guide](/webhooks-guide) ·
[`POST /v1/webhooks/nexa/{organizationId}`](/api-tesser/webhooks#receive-nexa-webhook-op-4) <T />

## 7. Failure recovery

Confirm manual handling of `PAYMENT_FAILED`/`RETURNED` for the POC (no API
retry semantics).

*Bites at:* [4 · GTQ payout](/flow-nexa/gtq-payout) ·
[Lifecycle](/flow-nexa/lifecycle)

## 8. Auth confirmation

Nexa signs off on mTLS + per-customer API key, and picks
fingerprint-pinning vs CA validation for Tesser's client cert.

*Bites at:* [Authentication](/authentication)

## 9. Additional-funds mechanics

Is `usdc_additional_requested` binding or indicative; can Nexa cancel the
request and credit anyway?

*Bites at:* [3 · Credit decision](/flow-nexa/credit-decision) ·
[`POST /v1/quotes/{tesser_quote_id}/deposits`](/api-nexa/deposits#report-usdc-deposit-op-3) <N />

## 10. Environments

Nexa sandbox availability, hostnames both sides, IP allowlisting needs (no
VPN per the brief, but banks often allowlist anyway).

*Bites at:* [Authentication](/authentication)
