Skip to content

[READY] add Alfredpay (USD/MXN/COP) on/off-ramp support to SDK#1173

Open
Sharqiewicz wants to merge 3 commits into
stagingfrom
1161-sdk-changes-for-alfredpay-currencies-support
Open

[READY] add Alfredpay (USD/MXN/COP) on/off-ramp support to SDK#1173
Sharqiewicz wants to merge 3 commits into
stagingfrom
1161-sdk-changes-for-alfredpay-currencies-support

Conversation

@Sharqiewicz

@Sharqiewicz Sharqiewicz commented May 28, 2026

Copy link
Copy Markdown
Member

Previously the SDK only supported BRL on/off-ramps. This adds MXN and COP (and USD) support in both directions - onramp and offramp - using the BRL integration as the reference pattern.

Closes #1161.

What changed

Core feature (packages/sdk)

  • New AlfredpayHandler covering onramp register, offramp register, and offramp update.
  • VortexSdk.registerRamp / updateRamp now route Alfredpay flows via isAlfredpayToken (USD/MXN/COP), checked before the existing pix/sepa branches.
  • New quote/additional-data types: AlfredpayOnrampQuote, AlfredpayOfframpQuote, AlfredpayOnrampAdditionalData, AlfredpayOfframpAdditionalData, AlfredpayOfframpUpdateAdditionalData, plus AlfredpayCurrency and
    discriminated ExtendedQuoteResponse / RegisterRampAdditionalData / UpdateRampAdditionalData mappings.
  • New typed errors: AlfredpayOnrampError / AlfredpayOfframpError and their Missing…ParametersError variants, wired into parseAPIError for both onramp and offramp backend messages.

@Sharqiewicz Sharqiewicz linked an issue May 28, 2026 that may be closed by this pull request
@netlify

netlify Bot commented May 28, 2026

Copy link
Copy Markdown

Deploy Preview for vortexfi ready!

Name Link
🔨 Latest commit 5c43865
🔍 Latest deploy log https://app.netlify.com/projects/vortexfi/deploys/6a2070af6deaa000095bbebf
😎 Deploy Preview https://deploy-preview-1173--vortexfi.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented May 28, 2026

Copy link
Copy Markdown

Deploy Preview for vortex-sandbox ready!

Name Link
🔨 Latest commit 5c43865
🔍 Latest deploy log https://app.netlify.com/projects/vortex-sandbox/deploys/6a2070aef413fb0008e54680
😎 Deploy Preview https://deploy-preview-1173--vortex-sandbox.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@Sharqiewicz Sharqiewicz changed the title [WIP] add Alfredpay (USD/MXN/COP) on/off-ramp support to SDK [READY] add Alfredpay (USD/MXN/COP) on/off-ramp support to SDK Jun 3, 2026
@ebma ebma requested a review from Copilot June 8, 2026 17:27
@ebma ebma self-assigned this Jun 8, 2026

@ebma ebma left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Sharqiewicz does this branch already have the latest changes from staging? I can see that it's using stellar ephemerals, from which we want to move away from. Please adjust that in the new files and fix the type issues and merge conflicts.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends @vortexfi/sdk beyond BRL-only ramps by adding Alfredpay-based USD/MXN/COP onramp and offramp support, including SDK routing, handler implementation, new quote/additional-data types, typed errors, regression tests, and README examples.

Changes:

  • Added AlfredpayHandler and wired VortexSdk.registerRamp() / updateRamp() to route Alfredpay flows via isAlfredpayToken(...).
  • Expanded SDK type system to include Alfredpay quotes and (register/update) additional-data mappings.
  • Added Alfredpay-specific error types + API error parsing, plus a new regression test suite and README usage examples.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
packages/sdk/test/alfredpayHandler.test.ts Adds regression tests for Alfredpay handler behavior, routing, and update semantics.
packages/sdk/src/VortexSdk.ts Routes USD/MXN/COP ramps to AlfredpayHandler for register/update flows.
packages/sdk/src/types.ts Introduces Alfredpay quote/additional-data types and updates conditional type mappings.
packages/sdk/src/handlers/AlfredpayHandler.ts Implements Alfredpay onramp/offramp register + offramp update flow (ephemerals + signing + update).
packages/sdk/src/errors.ts Adds Alfredpay-specific error classes and API error parsing hooks.
packages/sdk/README.md Documents Alfredpay onramp/offramp usage patterns for SDK consumers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/sdk/src/types.ts
Comment on lines 69 to +73
export type ExtendedQuoteResponse<T extends CreateQuoteRequest> = T extends { rampType: RampDirection.BUY; from: "pix" }
? BrlOnrampQuote
: T extends { rampType: RampDirection.BUY; from: "sepa" }
? EurOnrampQuote
: T extends { rampType: RampDirection.SELL; to: "pix" }
? BrlOfframpQuote
: T extends { rampType: RampDirection.SELL; to: "sepa" }
? EurOfframpQuote
: AnyQuote;
: T extends { rampType: RampDirection.BUY; inputCurrency: AlfredpayCurrency }
Comment thread packages/sdk/src/types.ts
Comment on lines +114 to +118
export interface AlfredpayOnrampAdditionalData {
destinationAddress: string;
fiatAccountId: string;
walletAddress?: string;
sessionId?: string;
Comment on lines +58 to +61
async registerAlfredpayOnramp(quoteId: string, additionalData: AlfredpayOnrampAdditionalData): Promise<RampProcess> {
if (!additionalData.destinationAddress || !additionalData.fiatAccountId) {
throw new MissingAlfredpayOnrampParametersError();
}
Comment on lines +81 to +85
const result = await handler.registerAlfredpayOnramp("quote_1", {
destinationAddress: WALLET,
fiatAccountId: FIAT_ACCOUNT,
walletAddress: WALLET
});
Comment on lines +148 to +152
export class MissingAlfredpayOnrampParametersError extends AlfredpayOnrampError {
constructor() {
super("Parameters destinationAddress and fiatAccountId are required for Alfredpay onramp", 400);
this.name = "MissingAlfredpayOnrampParametersError";
}
Comment thread packages/sdk/README.md
Comment on lines +71 to +75
const { rampProcess } = await sdk.registerRamp(quote, {
destinationAddress: "0x1234567890123456789012345678901234567890",
fiatAccountId: "<the user's Alfredpay fiat account id>",
walletAddress: "0x1234567890123456789012345678901234567890"
});
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.

SDK changes for Alfredpay currencies support

3 participants