Skip to content

Restore Banxa and Paybis sell after provider payment-method code changes#6106

Open
j0ntz wants to merge 2 commits into
developfrom
jon/fix-banxa-paybis-sell
Open

Restore Banxa and Paybis sell after provider payment-method code changes#6106
j0ntz wants to merge 2 commits into
developfrom
jon/fix-banxa-paybis-sell

Conversation

@j0ntz

@j0ntz j0ntz commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

CHANGELOG

  • Yes
  • No

Dependencies

none

Requirements

  • Tested on iOS device
  • Tested on Android device
  • Tested on small-screen device (iPod Touch)
  • Tested on large-screen device (tablet)

Description

Banxa and Paybis off-ramp (sell) were broken or degraded in the live ramp flow because both providers changed their payment-method codes and the ramp plugins no longer recognized them. Confirmed against each provider's live API and reproduced in-app on the iOS sim. Scope is the new ramp plugin architecture (the live sell path); the legacy providers/* plugins are reachable only via DevTestScene.

Paybis (US card payout)

Paybis migrated its US off-ramp payout method to the slug method-id-mass-pay-credit-card-out. The plugin only knew method-id-credit-card-out and method-id-mass-pay-out, both of which the quote API now rejects with HTTP 422. Since rampConstraints allows Paybis sell only for US + card, every Paybis sell returned zero quotes. Fix: add the current slug to the payment-method allowlist and PAYMENT_METHOD_MAP (mapped to credit); the plugin already prefers the API-returned payout id via sellPayoutMethodIds.

Banxa (renamed sell payout codes)

Banxa's off-ramp codes CHECKOUTPO (EUR card payout), DLOCALPIXPO (BRL PIX) and BCCONNECTSELL (AUD bank transfer) were missing from the strict asBanxaPaymentType allowlist, so asMaybe dropped them and those sell methods never surfaced. Fix: add the three codes to the allowlist and typeMap (CHECKOUTPO to credit, DLOCALPIXPO to pix, BCCONNECTSELL to directtobank) and enable credit for Banxa sell so the EUR card payout is offered.

Documented blockers / gaps (intentionally not changed)

  • Banxa USD ACH sell (BRDGACHSELL): blocked in rampConstraints "pending bank registration issue resolution" (unresolved in #banxa-dev since Oct 2025). Left blocked.
  • Banxa EUR SEPA sell (CLEARJCNSELLSEPA): disabled via sepa: false ("leave this to Bity"). Left disabled.
  • Paybis non-US / non-card sell (SWIFT, Colombia, Mexico, Brazil, Neteller, Skrill): blocked by rampConstraints (US + card only). Left as-is.

Testing (iOS sim, edge-funds)

  • Paybis US sell ETH to USD: "Credit and Debit Card, Best Rate, Powered By: Paybis" quote surfaces (screenshot 01). Previously absent because of the 422.
  • Banxa EU sell ETH to EUR (region Germany): "Credit and Debit Card, Best Rate, Powered By: Banxa" quote surfaces (screenshot 02). Previously absent.
  • Live-API checks confirm the working Paybis slug returns a valid quote while the old slugs 422, and that Banxa CHECKOUTPO / DLOCALPIXPO / BCCONNECTSELL are ACTIVE sell methods.
  • verify-repo.sh green (tsc, eslint, jest).
  • The Banxa BRL PIX and AUD additions share the identical mapping mechanism proven by the in-app Banxa EUR card quote plus the live API; they were not separately driven in-app.
  • End-to-end off-ramp completion (crypto sent to the provider) needs partner KYC and a bank/card payout account, which the sim cannot satisfy; verification stops at the restored quote, which is the fix's user-visible outcome.

Asana: Ramps - Fix banxa+paybis sell


Note

Low Risk
Narrow allowlist and mapping updates in ramp plugins only; no auth, custody, or payment execution logic changes.

Overview
Restores off-ramp (sell) quotes for Banxa and Paybis after both providers renamed or retired payment-method identifiers that the ramp plugins no longer recognized.

For Paybis US card payout, the quote API now uses method-id-mass-pay-credit-card-out instead of retired slugs that returned HTTP 422, which had left Paybis sell with zero quotes where only US + card is allowed.

For Banxa sell, three provider codes are added to the strict asBanxaPaymentType allowlist and typeMap (CHECKOUTPO → EUR card, DLOCALPIXPO → PIX, BCCONNECTSELL → AUD bank), and sell rampConstraints enable credit so EUR card payout can surface.

CHANGELOG records the user-facing fix.

Reviewed by Cursor Bugbot for commit a592c79. Bugbot is set up for automated code reviews on this repo. Configure here.

j0ntz added 2 commits July 24, 2026 14:04
Paybis renamed its US off-ramp payout method to
method-id-mass-pay-credit-card-out. The plugin only knew the retired
method-id-credit-card-out / method-id-mass-pay-out slugs, both of which
the quote API now rejects with 422, so US Paybis sell returned no quote.
Add the current slug to the payment-method allowlist and map it to the
credit payment type so initializeSellPairs picks up the API-returned id.
Banxa's off-ramp payment-method codes for card, PIX and AU bank transfer
(CHECKOUTPO, DLOCALPIXPO, BCCONNECTSELL) were absent from the strict
paymentType allowlist, so asMaybe dropped them and those sell methods
never surfaced. Add the three codes to the allowlist and typeMap
(CHECKOUTPO -> credit, DLOCALPIXPO -> pix, BCCONNECTSELL -> directtobank)
and enable credit for sell so the Banxa EUR card payout is offered.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@j0ntz

j0ntz commented Jul 24, 2026

Copy link
Copy Markdown
Contributor Author

📸 Test evidence (sell quotes restored)

paybis us sell quote

paybis us sell quote

banxa eur card sell quote

banxa eur card sell quote

Captured by the agent's in-app test run (build-and-test).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant